//package me.goldze.mvvmhabit.utils;
//
//import android.view.KeyEvent;
//
//import com.invengo.library_rfid.bus.RxBus;
//import com.invengo.library_rfid.cache.ACache;
//import com.invengo.library_rfid.cache.AKey;
//
//import me.goldze.mvvmhabit.bus._KeyState;
//
//public class KeyDownUtils {
//    private boolean shortPress = false;
//    public boolean onKeyDown(int keyCode, KeyEvent event){
//        if (keyCode == 300) {
//            if (event.getAction() == KeyEvent.ACTION_DOWN) {
//                event.startTracking(); //只有执行了这行代码才会调用onKeyLongPress的；
//                if (event.getRepeatCount() == 0) {
//                    shortPress = true;
////                    KLog.e("onkeydown");
//                    handlerKey(true);
//                }
//                return true;
//            }
//        }
//        return super.onKeyDown(keyCode, event);
//    }
//
//    public boolean onKeyLongPress(int keyCode, KeyEvent event){
//        if (keyCode == 300) {
//            shortPress = false;
//            handlerKey(true);
//            //长按要执行的代码
//            return true;
//        }
//        return false;
//    }
//
//    public boolean onKeyUp(int keyCode, KeyEvent event){
//        if (keyCode == 300) {
//            if (!shortPress) {
//                handlerKey(false);
//            }
//            shortPress = false;
//            return true;
//        }
//        return super.onKeyUp(keyCode, event);
//    }
//
//    int pressCount = 0;
//
//    private void handlerKey(boolean iskeyDown) {
//        boolean longPressModel = ACache.getInstance().getAsBoolean(AKey.IS_LONG_PRESS_MODEL);
//        if (longPressModel) {
//            if (iskeyDown && !shortPress) {
//                KLog.e("长按start");
//                RxBus.getDefault().post(_KeyState.START);
//            } else if (!iskeyDown) {
//                KLog.e("长按STOP");
//                RxBus.getDefault().post(_KeyState.STOP);
//            }
//        } else {
//            if (pressCount == 0) {
//                RxBus.getDefault().post(_KeyState.START);
//                pressCount++;
//            } else {
//                RxBus.getDefault().post(_KeyState.STOP);
//                pressCount = 0;
//            }
//        }
//    }
//}
